Debugging Overview
Table of Contents
Chapter 2: The Rules−Suitable for Framing
DEBUGGING RULES
UNDERSTAND THE SYSTEM
MAKE IT FAIL
QUIT THINKING AND LOOK
DIVIDE AND CONQUER
CHANGE ONE THING AT A TIME
KEEP AN AUDIT TRAIL
CHECK THE P LUG
GET A FRESH VIEW
IF YOU DIDN'T FIX IT, IT AIN'T FIXED
Chapter 3: Understand the System
This is the first rule because it's the most important. Understand?
- Read the manual. It'll tell you to lubricate the trimmer head on your weed whacker so that the lines don't fuse together.
- Read everything in depth. The section about the interrupt getting to your microcomputer is buried on page 37.
- Know the fundamentals. Chain saws are supposed to be loud.
- Know the road map. Engine speed can be different from tire speed, and the difference is in the transmission.
- Understand your tools. Know which end of the thermometer is which, and how to use the fancy features on your Glitch−O−Matic logic analyzer.
- Look up the details. Even Einstein looked up the details. Kneejerk, on the other hand, trusted his memory.
Chapter 4: Make it Fail
Chapter 8: Keep an Audit Trail
Better yet, don't remember "Keep an Audit Trail." Write down "Keep an Audit Trail."
- Write down what you did, in what order, and what happened as a result. When did you last drink coffee? When did the headache start?
- Understand that any detail could be the important one. It had to be a plaid shirt to crash the video chip.
- Correlate events. "It made a noise for four seconds starting at 21:04:53" is better than "It made a noise."
- Understand that audit trails for design are also good for testing. Software configuration control tools can tell you which revision introduced the bug.
- Write it down! No matter how horrible the moment, make a memorandum of it.